﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DocTes.Jerarquias
{
    /// <summary>
    /// Interfaz de la entidad de Linq de Documento.
    /// </summary>
    public interface IEntidadLinqDocumento : IEntidadLinq
    {
        /// <summary>
        /// Identificador
        /// </summary>
        Guid Id { get; set; }

        /// <summary>
        /// Nombre del Archivo
        /// </summary>
        string Nombre { get; set; }

        /// <summary>
        /// Fecha de modificacion del archivo
        /// </summary>
        DateTime Fecha { get; set; }

        /// <summary>
        /// Contenido del Archivo
        /// </summary>
        System.Data.Linq.Binary Archivo { get; set; }

        /// <summary>
        /// Consecutivo dentro de la carpeta
        /// </summary>
        int? Consecutivo { get; set; }

        /// <summary>
        /// Entidad linq de la jerarquiaCarpeta a la que pertenece el documento
        /// </summary>
        Guid IdJerarquiaCarpeta { get; set; }

        /// <summary>
        /// Estado Aprobado del Archivo
        /// </summary>
        Guid? IdEstadoDocumentoSeleccionado { get; set; }

        /// <summary>
        /// Descripción del Archivo
        /// </summary>
        string Descripcion { get; set; }


        /// <summary>
        /// Tipo del Archivo
        /// </summary>
        int? IdDocumentoTag { get; set; }

        /// <summary>
        /// Indica si existe o no el documento
        /// </summary>
        bool ExisteDocumento { get; }

        /// <summary>
        /// Indica si existe o no el documento
        /// </summary>
        bool NoExisteDocumento { get; }

        /// <summary>
        /// Indica si el documento es facturable o no
        /// </summary>
        bool Facturable { get; set; }

        /// <summary>
        /// Id del proyecto al que pertenece el documento
        /// </summary>
        System.Nullable<System.Guid> IdProyecto { get; set; }

		 /// <summary>
		 /// DocumentoTag asociado
		 /// </summary>
		  DocumentoTag DocumentoTag { get; set; }

		  /// <summary>
		  /// Indica si el documento se revisa para cálculo de estado del documento
		  /// </summary>
		  bool Relevante { get; set; }

        /// <summary>
        /// 
        /// </summary>
          string Estado { get; }

    }
}